/** 获取字符串长度 **/
let str1 = "abc";
console.log(str1.length); //3

/** 通过下标访问字符串元素 **/
let str2 = "abcd";
console.log(str2[2]); //c

//验证不可变性
str2[2] = "p";
console.log(str2); //abcd

/** 字符串大小写转换 **/
let str3 = "aBc1";
console.log(str3.toUpperCase()); //ABC1
console.log(str3.toLowerCase()); //abc1
/******* 字符串比较大小**********/
console.log("abc" > "abd"); //false

/** 严格相等和松散相等比较字符串 **/
console.log("abc" == "Abc"); //false
console.log("abc" === "Abc"); //false

/** 移除空格 **/
let str4 = "  Hello World  ";
//移除两端空格
console.log(str4.trim()); //Hello World
console.log(str4.trimStart()); //Hello World
console.log(str4.trimEnd()); //  Hello World

/** 切割数组 **/
let str5 = "I am a hero";

//按照元素切割
console.log(str5.split("", 5));
//不切割
console.log(str5.split());
//按照空字符串切割
console.log(str5.split(" "));

/** substring子串 **/
let abc = "helloWorld!!";
// 如果start>end,substring会交换位置
// abc.substring(3,5)
let str6 = abc.substring(5, 3);
console.log(str6);

// 小于0的会被视为0
console.log(abc.substring(-1, -2));

/** slice子串 **/
//遇到负值的处理
let str7 = "hello";
/* 
    负值处理的逻辑:
    将之转化为max(indexStart + str.length, 0)
    -1 就会转换成 4
    所以就会变成str7.slice(4, 2);
*/
str8 = str7.slice(-1, 2);
console.log(str8);

// 如果startIndex>=endIndex,则为空串
